package com.ruoyi.order.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.entity.SyAppUsers;
import com.ruoyi.siyun.domain.SyCourse;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 课程订单对象 sy_course_orders
 * 
 * @author ruoyi
 * @date 2024-12-19
 */
public class SyCourseOrders extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单ID 同时也是订单编号 */
    private String orderId;

    /** 用户ID */
    @Excel(name = "用户ID")
    private String userId;

    /** 课程id */
    @Excel(name = "课程id")
    private Long courseId;

    /** 订单总价格 */
    @Excel(name = "订单总价格")
    private BigDecimal totalAmount;

    /** 实际支付总价格 */
    @Excel(name = "实际支付总价格")
    private Long actualAmount;

    /** 支付方式 1:微信 2:支付宝 */
    @Excel(name = "支付方式 1:微信 2:支付宝")
    private Long payType;

    /** 订单备注 */
    @Excel(name = "订单备注")
    private String orderRemark;

    /** 订单状态 1:待付款 2 已付款 3 已取消 4 支付失败 5 支付成功  */
    @Excel(name = "订单状态 1:待付款 2 已付款 3 已取消 4 支付失败 5 支付成功 ")
    private Long payStatus;

    /** 逻辑删除状态 1: 删除 0:未删除 */
    @Excel(name = "逻辑删除状态 1: 删除 0:未删除")
    private Long deleteStatus;

    /** 付款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "付款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payTime;

    /** 发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deliveryTime;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date flishTime;

    /** 取消时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "取消时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date cancelTime;


    public SyCourse getSyCourse() {
        return syCourse;
    }

    public void setSyCourse(SyCourse syCourse) {
        this.syCourse = syCourse;
    }

    public SyAppUsers getSyAppUsers() {
        return syAppUsers;
    }

    public void setSyAppUsers(SyAppUsers syAppUsers) {
        this.syAppUsers = syAppUsers;
    }

    private SyCourse syCourse;

    private SyAppUsers syAppUsers;



    public void setOrderId(String orderId) 
    {
        this.orderId = orderId;
    }

    public String getOrderId() 
    {
        return orderId;
    }
    public void setUserId(String userId) 
    {
        this.userId = userId;
    }

    public String getUserId() 
    {
        return userId;
    }
    public void setCourseId(Long courseId) 
    {
        this.courseId = courseId;
    }

    public Long getCourseId() 
    {
        return courseId;
    }
    public void setTotalAmount(BigDecimal totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() 
    {
        return totalAmount;
    }
    public void setActualAmount(Long actualAmount) 
    {
        this.actualAmount = actualAmount;
    }

    public Long getActualAmount() 
    {
        return actualAmount;
    }
    public void setPayType(Long payType) 
    {
        this.payType = payType;
    }

    public Long getPayType() 
    {
        return payType;
    }
    public void setOrderRemark(String orderRemark) 
    {
        this.orderRemark = orderRemark;
    }

    public String getOrderRemark() 
    {
        return orderRemark;
    }
    public void setPayStatus(Long payStatus) 
    {
        this.payStatus = payStatus;
    }

    public Long getPayStatus() 
    {
        return payStatus;
    }
    public void setDeleteStatus(Long deleteStatus) 
    {
        this.deleteStatus = deleteStatus;
    }

    public Long getDeleteStatus() 
    {
        return deleteStatus;
    }
    public void setPayTime(Date payTime) 
    {
        this.payTime = payTime;
    }

    public Date getPayTime() 
    {
        return payTime;
    }
    public void setDeliveryTime(Date deliveryTime) 
    {
        this.deliveryTime = deliveryTime;
    }

    public Date getDeliveryTime() 
    {
        return deliveryTime;
    }
    public void setFlishTime(Date flishTime) 
    {
        this.flishTime = flishTime;
    }

    public Date getFlishTime() 
    {
        return flishTime;
    }
    public void setCancelTime(Date cancelTime) 
    {
        this.cancelTime = cancelTime;
    }

    public Date getCancelTime() 
    {
        return cancelTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("userId", getUserId())
            .append("courseId", getCourseId())
            .append("totalAmount", getTotalAmount())
            .append("actualAmount", getActualAmount())
            .append("payType", getPayType())
            .append("orderRemark", getOrderRemark())
            .append("payStatus", getPayStatus())
            .append("deleteStatus", getDeleteStatus())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("payTime", getPayTime())
            .append("deliveryTime", getDeliveryTime())
            .append("flishTime", getFlishTime())
            .append("cancelTime", getCancelTime())
            .toString();
    }
}
